package ee.ttu.serge.container.stack;

public class Stack<T> {

   /**
    * Stacki 1. element
    */
   private Node<T> startNode;   
   /**
    * Loob uue tühja magasini O(1)
    */
   public void create() {
      startNode = null;
   }
   /**
    * Lisab täisarvu x magasini (listi algusesse) O(1)
    */
   public void push(T val) {
      Node<T> node = new Node<T>(val);
      node.setNextNode(startNode);
      startNode = node;
   }
   /**
    * Eemaldab ja väljastab magasini viimasena sisestatud elemendi O(1)
    */
   public T pop() {
      Node<T> result = startNode;
      startNode = startNode.getNextNode();
      return result.getValue();
   }
   /**
    * Väjastab true, kui magasin on tühi O(1)
    */
   public boolean isEmpty() {
      return startNode == null;
   }
   
}
